/**
 * 指定时间间隔内执行第一次调用
 * @param {*} fn 被限制调用的函数
 * @param {*} delay 间隔时间
 * @returns 
 */
function throttle(fn, delay){
    let flat = true;
    return function(...args){
        if(!flat){
            return;
        }
        flat=false;
        setTimeout(()=>{
            fn.apply(this,args);
            flat=true
        },delay)
    }
}
 // 测试
 function task(index) {
    console.log('run task',index)
  }
  let throttleTask = throttle(task,1000);
  throttleTask(1)
  throttleTask(2)
  
  setTimeout(()=>{
    throttleTask(3)
  },1100)
  setTimeout(()=>{
    throttleTask(4)
  },1200)

  //1
  //3